<html>
<head><meta charset="utf-8"><title>Using Soufflé · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html">Using Soufflé</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="221584329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584329">(Jan 04 2021 at 21:36)</a>:</h4>
<p>I've decided that it's easier for me to experiment with polonius using Soufflé than datafrog. I have a hard time translating between datalog rules and calls to the datafrog API. The comments are quite helpful, and I assume the little things like swapping indexes gets easier with time. However, using a full-featured datalog engine has other benefits (rules can't get out of sync, etc.) and seems better for prototyping. Judging from the initial blog post, Niko switched away from Soufflé pretty early on. This makes me somewhat less confident, but still confident enough to proceed.</p>



<a name="221584478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584478">(Jan 04 2021 at 21:38)</a>:</h4>
<p>I did this on Sunday using the rules from a HackMD floating out in the ether: <a href="https://github.com/ecstatic-morse/polonius/tree/souffle">https://github.com/ecstatic-morse/polonius/tree/souffle</a></p>



<a name="221584526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584526">(Jan 04 2021 at 21:38)</a>:</h4>
<p><a href="https://github.com/rust-lang/polonius/pull/126">https://github.com/rust-lang/polonius/pull/126</a></p>



<a name="221584739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584739">(Jan 04 2021 at 21:40)</a>:</h4>
<p>Ah damn, I wish I would have seen that. I had to choose between writing "literate Prolog" markdown files and extensively commented <code>.dl</code> files. I probably would have gone the other way if I would have known.</p>



<a name="221584742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584742">(Jan 04 2021 at 21:40)</a>:</h4>
<p>the automatic conversion is interesting</p>



<a name="221584917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584917">(Jan 04 2021 at 21:42)</a>:</h4>
<p>(we probably still have the original .dl from way back when :)</p>



<a name="221584921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584921">(Jan 04 2021 at 21:42)</a>:</h4>
<p>(I did see your renaming PR. Mine uses the new names.)</p>



<a name="221584933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584933">(Jan 04 2021 at 21:42)</a>:</h4>
<p>nice !</p>



<a name="221584961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221584961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221584961">(Jan 04 2021 at 21:42)</a>:</h4>
<p>(so does this PR, I've updated it recently)</p>



<a name="221585058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585058">(Jan 04 2021 at 21:43)</a>:</h4>
<p>using your script could be nice as well</p>



<a name="221585085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585085">(Jan 04 2021 at 21:44)</a>:</h4>
<p>Anyways, I fixed up some typos and some missing rules and it compiles. However, it seems something is still missing, since it's not outputting any errors.</p>



<a name="221585143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585143">(Jan 04 2021 at 21:44)</a>:</h4>
<p>what input are you testing ?</p>



<a name="221585145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585145">(Jan 04 2021 at 21:44)</a>:</h4>
<p>(I tried on the <code>vec-push-ref</code> test cases)</p>



<a name="221585155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585155">(Jan 04 2021 at 21:44)</a>:</h4>
<p>ok</p>



<a name="221585156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585156">(Jan 04 2021 at 21:44)</a>:</h4>
<p><code>foo1</code> and <code>foo2</code></p>



<a name="221585191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585191">(Jan 04 2021 at 21:44)</a>:</h4>
<p>the thing with this hackmd is that some of it still uses placeholder loans IIRC</p>



<a name="221585218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585218">(Jan 04 2021 at 21:45)</a>:</h4>
<p>it probably shouldn't matter to the errors in vec-push-ref as IIRC they were regular errors</p>



<a name="221585252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585252">(Jan 04 2021 at 21:45)</a>:</h4>
<p>It does have the placeholder rules.</p>



<a name="221585265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585265">(Jan 04 2021 at 21:45)</a>:</h4>
<p>yeah but which ones</p>



<a name="221585330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585330">(Jan 04 2021 at 21:46)</a>:</h4>
<p>I've switched away from computing subset errors with placeholder loans in 2/3 variants</p>



<a name="221585363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585363">(Jan 04 2021 at 21:46)</a>:</h4>
<div class="codehilite" data-code-language="Prolog"><pre><span></span><code><span class="nf">origin_contains_loan_on_entry</span><span class="p">(</span><span class="s s-Atom">origin</span><span class="p">,</span> <span class="s s-Atom">loan</span><span class="p">,</span> <span class="s s-Atom">targetNode</span><span class="p">)</span> <span class="p">:-</span>
  <span class="nf">origin_contains_loan_on_entry</span><span class="p">(</span><span class="s s-Atom">origin</span><span class="p">,</span> <span class="s s-Atom">loan</span><span class="p">,</span> <span class="s s-Atom">sourceNode</span><span class="p">),</span>
  <span class="p">!</span><span class="nf">loan_killed_at</span><span class="p">(</span><span class="s s-Atom">loan</span><span class="p">,</span> <span class="s s-Atom">sourceNode</span><span class="p">),</span>
  <span class="nf">cfg_edge</span><span class="p">(</span><span class="s s-Atom">sourceNode</span><span class="p">,</span> <span class="s s-Atom">targetNode</span><span class="p">),</span>
  <span class="p">(</span><span class="nf">origin_live_on_entry</span><span class="p">(</span><span class="s s-Atom">origin</span><span class="p">,</span> <span class="s s-Atom">targetNode</span><span class="p">);</span> <span class="nf">placeholder</span><span class="p">(</span><span class="s s-Atom">origin</span><span class="p">,</span> <span class="k">_</span><span class="p">)).</span>
</code></pre></div>



<a name="221585420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585420">(Jan 04 2021 at 21:47)</a>:</h4>
<p>yeah placeholder loans are something else than this one</p>



<a name="221585429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585429">(Jan 04 2021 at 21:47)</a>:</h4>
<p>This one? It's whatever was in here <a href="https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view">https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view</a></p>



<a name="221585431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585431">(Jan 04 2021 at 21:47)</a>:</h4>
<p>I'll look them up</p>



<a name="221585478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585478">(Jan 04 2021 at 21:47)</a>:</h4>
<p>I'm not exactly sure whether the rules in the hackmd are up to date for move/init and liveness, I would hope so but I'm not sure :/</p>



<a name="221585547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585547">(Jan 04 2021 at 21:48)</a>:</h4>
<p>yes that's the one</p>



<a name="221585555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585555">(Jan 04 2021 at 21:48)</a>:</h4>
<p>I did a sanity check and all the rules seem fine. I have a few questions about liveness but it all seems reasonable.</p>



<a name="221585618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585618">(Jan 04 2021 at 21:49)</a>:</h4>
<p>I might just be using the wrong input facts, since I had to rename them.</p>



<a name="221585639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585639">(Jan 04 2021 at 21:49)</a>:</h4>
<p>eg the second rule here <a href="https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view#Error-reporting">https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view#Error-reporting</a> is no more</p>



<a name="221585648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585648">(Jan 04 2021 at 21:49)</a>:</h4>
<div class="codehilite" data-code-language="Bash"><pre><span></span><code>mv borrow_region.facts loan_issued_at.facts
mv killed.facts loan_killed_at.facts
mv invalidates.facts loan_invalidated_at.facts

mv child_path.facts parent_path.facts

mv known_subset.facts known_placeholder_subset.facts
mv outlives.facts subset_base.facts
</code></pre></div>



<a name="221585657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585657">(Jan 04 2021 at 21:49)</a>:</h4>
<p>at least, there's a PR to change it</p>



<a name="221585845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585845">(Jan 04 2021 at 21:51)</a>:</h4>
<p>or am I spewing random bs, I have updated the hackmd recently</p>



<a name="221585909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221585909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221585909">(Jan 04 2021 at 21:51)</a>:</h4>
<p>(sorry dylan, I'm a bit tired from work and trying to make progress on const generics defaults during the holidays)</p>



<a name="221586062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586062">(Jan 04 2021 at 21:52)</a>:</h4>
<p>another point of difference</p>



<a name="221586095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586095">(Jan 04 2021 at 21:53)</a>:</h4>
<p>the rules use soufflé's alternative <code>;</code> combinator</p>



<a name="221586172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586172">(Jan 04 2021 at 21:53)</a>:</h4>
<p>but the code does not, it does a similar thing, by materializing liveness for the universal regions / placeholders at all points in the cfg</p>



<a name="221586342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586342">(Jan 04 2021 at 21:55)</a>:</h4>
<p>No worries. I was planning to work on my own since you're busy for this month at least and Niko is presumably <strong>super</strong> busy. Figuring this stuff out means I reach competency faster.</p>



<a name="221586371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586371">(Jan 04 2021 at 21:55)</a>:</h4>
<p>Although I do wish I had known about the rules documentation PR XD</p>



<a name="221586502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586502">(Jan 04 2021 at 21:56)</a>:</h4>
<p>Yes. You have a PR that adds the placeholder disjunction to the datafrog rules correct?</p>



<a name="221586514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586514">(Jan 04 2021 at 21:57)</a>:</h4>
<p>yeah</p>



<a name="221586544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586544">(Jan 04 2021 at 21:57)</a>:</h4>
<p>it's still WIP because of the Opt variant which are the only ones using antijoins on liveness</p>



<a name="221586585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586585">(Jan 04 2021 at 21:57)</a>:</h4>
<p>and I wanted to discuss this a bit, but I expect we'd just need to add the implicit antijoins and that it should work</p>



<a name="221586635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586635">(Jan 04 2021 at 21:58)</a>:</h4>
<p>it's just ... verbose</p>



<a name="221586660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586660">(Jan 04 2021 at 21:58)</a>:</h4>
<p>and maybe something datafrog could/should help with</p>



<a name="221586679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586679">(Jan 04 2021 at 21:58)</a>:</h4>
<p>(I assumed that none of that would affect <code>vec_push_ref</code>):</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo1</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">22</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="fm">vec!</span><span class="p">[];</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">x</span><span class="p">;</span><span class="w"></span>

<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="n">something</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="n">v</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">p</span><span class="p">);</span><span class="w"></span>
<span class="w">        </span><span class="n">x</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">//~ ERROR</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="n">x</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>

<span class="w">    </span><span class="nb">drop</span><span class="p">(</span><span class="n">v</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="221586756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586756">(Jan 04 2021 at 21:59)</a>:</h4>
<p>yeah same</p>



<a name="221586862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586862">(Jan 04 2021 at 22:00)</a>:</h4>
<p>I'm not sure how to debug that apart from comparing the relations contents first between the 3 phases</p>



<a name="221586911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586911">(Jan 04 2021 at 22:00)</a>:</h4>
<p>and if that doesn't help, see the tuples emitted each round as well</p>



<a name="221586925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221586925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221586925">(Jan 04 2021 at 22:00)</a>:</h4>
<p>Yep. That was my next step but I ran out of time over the weekend. I'll let you know how it goes when I pick it up again, but I'm also busy.</p>



<a name="221587006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221587006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221587006">(Jan 04 2021 at 22:01)</a>:</h4>
<p>I'll try to look at it if I find the time as well</p>



<a name="221587058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221587058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221587058">(Jan 04 2021 at 22:01)</a>:</h4>
<p>I wasn't gonna post at all, but you nerd-sniped me with vEB trees. And anyone who has time to think about vEB trees has too much time.</p>



<a name="221587071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221587071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221587071">(Jan 04 2021 at 22:01)</a>:</h4>
<p>haha <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span></p>



<a name="221587199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221587199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221587199">(Jan 04 2021 at 22:02)</a>:</h4>
<p>there's always time to read on the toilet, like Muchnick's book :p</p>



<a name="221589455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221589455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221589455">(Jan 04 2021 at 22:23)</a>:</h4>
<p>you've done a great job on commenting the rules in your branch</p>



<a name="221589595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221589595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221589595">(Jan 04 2021 at 22:24)</a>:</h4>
<p>or maybe those are from the hackmd (pretty sure you did add some of your own tho)</p>



<a name="221589788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221589788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221589788">(Jan 04 2021 at 22:27)</a>:</h4>
<p>(it shows that I'm not familiar with the comments on the hackmd's move/init and liveness rules, obviously ... they work in rustc == I'm happy)</p>



<a name="221613375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221613375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221613375">(Jan 05 2021 at 05:05)</a>:</h4>
<p>Nah those are all verbatim from the HackMD. Thank Albin. I will add to them eventually though.</p>



<a name="221613533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221613533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221613533">(Jan 05 2021 at 05:09)</a>:</h4>
<p>I found the critical differences in my transcribed version. Two relations had their arguments flipped from how they appeared in the fact file, and liveness was manually adding some facts <a href="https://github.com/rust-lang/polonius/blob/2cf8336f7ff9932270160a392ca5be3c804b7f41/polonius-engine/src/output/liveness.rs#L157-L170">here</a>. Tuple counts now match up for examples without placeholders.</p>



<a name="221613667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221613667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221613667">(Jan 05 2021 at 05:13)</a>:</h4>
<p>Naive souffle can run the clap-rs benchmark in 2 minutes without using a crazy amount of RAM, so it's definitely usable.  Running on 8 cores helps of course (<code>-j8</code>).</p>



<a name="221613769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221613769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221613769">(Jan 05 2021 at 05:14)</a>:</h4>
<p>That's enough for tonight though.</p>



<a name="221620490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221620490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221620490">(Jan 05 2021 at 07:53)</a>:</h4>
<p>ah dang I now remember the different ordering in the loan invalidations relation <a href="https://github.com/rust-lang/polonius/blob/f2c0fcafdcd341486f7c2225824b26feb0d6b9ce/polonius-engine/src/output/mod.rs#L222">https://github.com/rust-lang/polonius/blob/f2c0fcafdcd341486f7c2225824b26feb0d6b9ce/polonius-engine/src/output/mod.rs#L222</a></p>



<a name="221620617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221620617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221620617">(Jan 05 2021 at 07:55)</a>:</h4>
<p>and the liveness one is the one I mentioned above, that should have been taken care of by all the "origin is live ; origin is placeholder" joins in the loan analysis rules though</p>



<a name="221620873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221620873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221620873">(Jan 05 2021 at 08:00)</a>:</h4>
<p>maybe we missed one in the hackmd ?</p>



<a name="221758926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Using%20Souffl%C3%A9/near/221758926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Using.20Souffl.C3.A9.html#221758926">(Jan 06 2021 at 11:53)</a>:</h4>
<p>btw RE: <a href="https://github.com/ecstatic-morse/polonius/commit/3e00d634ccb1026a6d04a6cebb379541b27a9eed">https://github.com/ecstatic-morse/polonius/commit/3e00d634ccb1026a6d04a6cebb379541b27a9eed</a> the updated names and facts should already be updated in <a href="https://github.com/rust-lang/polonius/pull/155">https://github.com/rust-lang/polonius/pull/155</a> (with the caveat <a href="https://github.com/rust-lang/polonius/pull/156#issuecomment-751460154">https://github.com/rust-lang/polonius/pull/156#issuecomment-751460154</a> where I forgot to rename two internal relations in that PR, but that shouldn't matter to use the repository facts with soufflé)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>